package org.example;

import java.util.HashSet;

public class HashSet_Student_Demo1 {
    public static void main(String[] args) {
        HashSet<Student> set = new HashSet<>();
        //Student类中没有重写HashCode方法
        //HashSet 无序 去重 哈希表结构 快速查找
        set.add(new Student("张三",18));
        set.add(new Student("李四",18));
        set.add(new Student("王五",18));
        set.add(new Student("张三",18));


        System.out.println(set);
    }
}
//哈希表是一种对于增删改除数据性能都较好的结构
//哈希表的底层是数组+链表+红黑树
//HashSet的底层是哈希表
//哈希值是重写hashcode方法,利用对象内部属性值计算出来int类型的整数 哈希值是对象的整数表现形式
// int index=(数组长度—1)&哈希值 是对象应该存在数组中的位置
//如果位置没有元素 则直接添加
//如果位置有元素 则用equals方法比较 如果equals方法返回true 则不添加 如果返回false 则添加到链表中
